Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.65/106: Рейтинг темы: голосов - 106, средняя оценка - 4.65
30 / 30 / 6
Регистрация: 24.04.2010
Сообщений: 145
1

Отбрасываение цифр после запятой!

29.07.2011, 11:20. Показов 19674. Ответов 6
Метки нет (Все метки)

Доброго времени суток!

Народ, столкнулся с проблемой округления числа, а точнее не совсем округления...

Допустим есть некое число - 461.54999999999995. Мне нужно его округлить таким образом чтобы получилось 461,54. пробовал делать так

Javascript
1
2
3
var number = 461.54999999999995;
number = number.toFixed(2);
alert(number);
и получал 461,55. Помоги те плиз
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.07.2011, 11:20
Ответы с готовыми решениями:

Ввод цифр и запятой (или точки)
Есть такая штука function OnlyDigits() { if ((event.keyCode < 48) || (event.keyCode > 57)) {...

Ввод в поле TextBox :цифр,одной запятой и трех цифр после запятой
Добрый день. На форме размещен TextBox в который разрешен ввод :цифр ,запятая. У меня вопрос как...

Количество цифр после запятой
Подскажите пожалуйста, как можно прописать в DBGrid или DBEdit количество цифр после запятой, а то...

Количество цифр после запятой
число "а - расчитано по формуле" сравнивается с числом "z - взято из edit". число "а" может...

__________________

Записывайтесь на профессиональные курсы Fullstack-разработчиков на JavaScript‌
Обучение в Java Mentor с оплатой после трудоустройства
6
210 / 204 / 52
Регистрация: 25.07.2010
Сообщений: 1,162
29.07.2011, 14:29 2
всё правильно 461,55
ты математику в школе проходил?
0
307 / 165 / 25
Регистрация: 07.02.2011
Сообщений: 319
29.07.2011, 15:23 3
kraldraav, Я так понимаю, что тебе нужно не округлить а просто отбросить дробную часть до определённой точности без округления.
Если так, то можно самому написать функцию:
Javascript
1
2
3
4
5
6
7
8
9
Number.prototype.Crop = function (x){
    var s = this+'', a = s.split('.');
    a[1]=a[1]||'';      
    return parseFloat(a[0]+'.'+a[1].substring(0,x));
}
//Использование
var number = 461.54999999999995;
number = number.Crop(2);
alert(number);
1
0 / 0 / 0
Регистрация: 27.07.2011
Сообщений: 10
30.07.2011, 09:17 4
кстати в последних версиях ИЕ(6,7,8) toFixed как раз работает по принципу обрезания строки, т.е.
получите не 461,55 , а 461,54 . так что лучше самому писать функцию округления (если понадобится)
0
0 / 0 / 0
Регистрация: 26.04.2018
Сообщений: 1
26.04.2018, 20:32 5
Всем привет , ищу не могу найти способ или просто не понимаю как решить .
Короче у меня есть код :
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<html>
<head><title>Знайти суму, добуток і середнє арифметичне введених чисел</title>
<body>
<script>
function care (a, b, c)
{
var g= (a + b + c ) /3;
document.writeln("<br>Середнє арифметичне введених чисел равно : "+ "("+ a + " + " + b + " + " + c + ")"  +  "/ 3 " + " = ", g= ((parseInt(a) + parseInt(b) + parseInt(c)) / 3));
return g
}
</script>
</head>
</body>
<p>Дано три числа a, b, c. Знайти суму, добуток і середнє арифметичне введених чисел</p>
<form name="form1">     
А число: <input type="text" size=5 name="st1"><hr>
B число: <input type="text" size=5 name="st2"><hr>
C число: <input type="text" size=5 name="st3"><hr>
<input type="button" value=Вычислить onclick="care(document.form1.st1.value, document.form1.st2.value, document.form1.st3.value)">
</form>
</html>
должно выводится 3 цифры после запитой , если поможете решить проблему , буду весьма благодарен
P.S. только начал изучать JavaScript ....
0
32 / 32 / 14
Регистрация: 30.11.2013
Сообщений: 139
26.04.2018, 22:05 6
Цитата Сообщение от Kdn Посмотреть сообщение
то можно самому написать функцию:
Что за наркомания?)))
не проще ли
Javascript
1
2
3
Number.prototype.Crop = function (x){
  return parseInt(x*100, 10)/100;
}
0
705 / 307 / 190
Регистрация: 05.03.2015
Сообщений: 822
27.04.2018, 10:40 7
Сама ф-ция
Javascript
1
2
3
4
5
6
7
8
function crop(number, digits, type){
  const _digits = Number(1 + Array(digits).fill(0).join(''))
  if (type === 'ceil') return Math.ceil(number * _digits) / _digits
  if (type === 'floor') return Math.floor(number * _digits) / _digits
}
 
console.log( crop(461.54999999999995, 2, 'ceil') ) // 461.55
console.log( crop(461.54999999999995, 2, 'floor') ) // 461.54
Пример использования в задаче про среднее арифметическое, с выводом результата думаю сами справитесь
Javascript
1
var result = crop( ((parseInt(a) + parseInt(b) + parseInt(c)) / 3), 2, 'ceil');
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2018, 10:40

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Отделение цифр после запятой
Добрый вечер! помогите пожалуйста доделать программу, в общем надо чтобы результат выводился до...

Количество цифр после запятой
Доброго дня. Как после запятой запятой округлить значение до 5 знаков, если там содержится больше,...

Количество цифр после запятой
Здравствуйте, помогите пожалуйста с кодом sum:=(c/a)*b; SG.Cells:=floattostr(sum)+ '%';...

Округлить до 2 цифр после запятой
Дано число с 15-ю цифрами после запятой.Создать программу,которая будет округлять данное число до 2...

Определение количества цифр после запятой
Уважаемые профессионалы! Прошу у вас помощи! Мне очень нужна функция типа ***(Number) или...

Уменьшение количества цифр после запятой
Друзья, подскажите пожалуйста, как уменьшить количество цифр после запятой. Пользуюсь функцией...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.