在目标中抑制Haxe的科学记数法

时间:2017-03-24 21:43:20

标签: string-formatting haxe scientific-notation openfl

有没有办法抑制Haxe的科学记数法?

例如,如果我有:

type Point a = (a,a)

-- Convert a String with points separated by spaces to a list of Points.
toPoints :: String -> [(Float,Float)]
toPoints s = splitOn " " s

在html5等目标中,输出:0.00007075

但是,c ++目标输出:7.075e-05

有没有办法控制科学记数法是否用于字符串格式?

2 个答案:

答案 0 :(得分:2)

向GameHaxe的Hugh Sanderson致信,他在论坛上回答了这个问题。

浮点数的全局输出模式可以使用extern更改:

class Test
{
  @:native("__hxcpp_set_float_format") @:extern
  static function setFloatFormat(format:String):Void { }

  public static function main()
  {
    trace(0.00005);
    trace(5e20);
    setFloatFormat("%.12f");
    trace(0.00005);
    trace(5e20);
  }
}

答案 1 :(得分:1)

也许你可以切换到另一个库来将浮点数转换为指定格式的字符串。例如,https://github.com/polygonal/printf/blob/master/src/de/polygonal/Printf.hx#L119