列表浮动erlang而不影响小数部分

列表浮动erlang而不影响小数部分,erlang,Erlang,我想将列表编号转换为浮点数。它不应该影响它的小数部分。 例如 它不应该是1.0。此外,它不应影响具有不同格式的任何其他值,如1.23、8344343.44333330、34.0等 列表到浮点数不适用于此,因为它会更改分数 1> list_to_float("1.34440"). 1.3444 @raina77ow总结评论 浮点数1.0和1.00对应于相同的数字,因此它们不能也不应该以保留不同表示形式的方式存储。如果需要保留用户提供的原始表示形式,则需要将此字

我想将列表编号转换为浮点数。它不应该影响它的小数部分。 例如

它不应该是1.0。此外,它不应影响具有不同格式的任何其他值,如1.23、8344343.44333330、34.0等

列表到浮点数不适用于此,因为它会更改分数

  1> list_to_float("1.34440").           
  1.3444

@raina77ow总结评论


浮点数1.0和1.00对应于相同的数字,因此它们不能也不应该以保留不同表示形式的方式存储。如果需要保留用户提供的原始表示形式,则需要将此字段存储为列表字符串,并在需要浮点值时转换为浮点。

通过@raina77ow汇总注释

浮点数1.0和1.00对应于相同的数字,因此它们不能也不应该以保留不同表示形式的方式存储。如果需要保留用户提供的原始表示形式,则需要将此字段存储为列表字符串,并在需要浮点值时转换为浮点值。

1> list_to_float("1.34440").
1.3444
在shell中,您看到了两件事:首先调用list_to_float/1将字符串转换为float;然后,shell以其默认格式打印浮点。如果要打印具有特定格式的浮点,最简单的方法是使用io_lib:format/2函数,该函数可控制格式并将结果返回为可能较深的字符串。可以使用列表展平此字符串:展平/1。有关io_lib:float/2参数的说明,请参阅io模块的文档

io模块在内部使用io_lib模块。

1> list_to_float("1.34440").
1.3444
在shell中,您看到了两件事:首先调用list_to_float/1将字符串转换为float;然后,shell以其默认格式打印浮点。如果要打印具有特定格式的浮点,最简单的方法是使用io_lib:format/2函数,该函数可控制格式并将结果返回为可能较深的字符串。可以使用列表展平此字符串:展平/1。有关io_lib:float/2参数的说明,请参阅io模块的文档


io模块在内部使用io_lib模块。

告诉我,浮点1.0和浮点1.00到底有什么不同?@raina77ow-它们当然没有什么不同。但我需要它显示在模板上。实际上这是客户的要求。但在mongo集合中,我们将其存储为浮点值。您将无法区分1.0和1.00-它是相同的数字,而浮点类型与数字有关。您可以区分的是它们的表示-即列表。改为调整模板怎么样?@raina77ow谢谢回复。我不确定这是否行得通。我们必须记住,用户输入的零的数量。也许我们需要将集合类型从float改为list。告诉我,float 1.0和float 1.00到底有什么不同?@raina77ow-当然它们没有什么不同。但我需要它显示在模板上。实际上这是客户的要求。但在mongo集合中,我们将其存储为浮点值。您将无法区分1.0和1.00-它是相同的数字,而浮点类型与数字有关。您可以区分的是它们的表示-即列表。改为调整模板怎么样?@raina77ow谢谢回复。我不确定这是否行得通。我们必须记住,用户输入的零的数量。可能我们需要将集合类型从float更改为list。