我会格式化一个带有2位小数的数字而不进行舍入。 所以我排除了toFixed()函数。
我试过这种方式
a = 1,809999
b = 27,94989
a = Math.floor(a * 100) / 100; --> 1,8
b = Math.floor(b * 100) / 100; --> 27,94
OR
a = Number(a.toString().match(/^\d+(?:\.\d{0,2})?/)); --> 1,8
b = Number(b.toString().match(/^\d+(?:\.\d{0,2})?/)); --> 27,94
不幸的是,a的第二个小数是零,这被删除了,我怎么能保持它并且= 1.80? 谢谢
答案 0 :(得分:4)
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:realmObject options:NSJSONWritingPrettyPrinted error:&writeError];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
使用toFixed(2)!
<强> JSFIDDLE DEMO 强>
答案 1 :(得分:1)
答案 2 :(得分:0)
舍入数字是关于改变它的值,应该用数学运算完成(Math.floor,Math.ceil,Math.round,...)。
格式化编号,是关于如何向人类用户显示数字(如日期格式)。
Javascript没有可接受的原生工具来进行数字格式化。
您可以随时使用舍入来使javascript以您想要的方式打印数字,但最终会编写很多(可能是错误的)代码。
我建议使用库格式化您的数字 http://numeraljs.com/
numeral(number).format('0.00');
答案 3 :(得分:0)
只需要使用toFixed()并将数字传递为2然后显示之后。两个十进制像bello
a = 1,809999
b = 27,94989
a = Math.floor(a * 100) / 100;
b = Math.floor(b * 100) / 100;
$(".testa").text(a.toFixed(2)); //see here.
$(".testb").text(b.toFixed(2)); //see here.
Html:
<div class="testa"></div>
<br>
<div class="testb"></div>
我希望这会对你有所帮助。并且还会看到这个jsfiddle链接http://jsfiddle.net/RGerb/394/
答案 4 :(得分:0)
myFunction(value: number){
let x = value + '';
var a = x.lastIndexOf('.')>=0?parseFloat(x.substr(0,x.lastIndexOf('.')+(3))):value;
var am = a.toFixed(2)
console.log("Output: " + am);
return am;
}
<button (click)="myFunction(656565.9668985)">My Function</button>
Output: 656565.96