像在c#中一样在Javascript中转换为float

时间:2014-04-11 17:36:18

标签: c# javascript rounding floating-point-precision

c#c​​ode:

float floatA = 4;
float floatB = 17;
float floatC = floatA / floatB; //0.235294119

double doubleA = 4;
double doubleB = 17;
double doubleC = doubleA / doubleB; // 0.23529411764705882
float res = (float)doubleC; // 0.235294119

js code:

var a = 4;
var b = 17;
var c = a / b; // 0.23529411764705882
var res = (a / b).toPrecition(9); // 0.235294118

为什么要使用floatC& res是0.235294119而不是0.235294118?

c#中的doubleC与js中的c相同。 基本上我需要在javascript中对数字进行舍入,就像c#一样(浮动为double)

1 个答案:

答案 0 :(得分:0)

作为浮动,4/17 = 0.23529411852359771728515625。圆形到9位数,即0.235294119。

作为双倍,4/17 = 0.235294117647058820264049927573068998754024505615234375。圆形到9位,即0.235294118。

这是预期的四舍五入。