1

Big Dezimal nicht angezeigt Wert in ZahlenRuby on Rails großen Dezimalwert Format nicht korrekt

a = BigDecimal.new("100.55") 
a = * a * a 
puts "big decimal #{a}" 

Ausgang

big decimal [#<BigDecimal:ad5a6e8,'0.101103025E5',18(45)>] 

, wie ich es in der richtigen Format angezeigt werden können wie 12345,236

+4

Weil Sie ein Array statt einer machen. Remove de first * –

+1

Zuerst müssen Sie den Wert von a in BigDecimal konvertieren. Danach to_f verwenden können Sie es in Float-Wert konvertieren. z.B. a.first.to_f – APS

+0

@Fahad Sie können meine Antwort als akzeptiert markieren, wenn es funktioniert. –

Antwort

1

Sie kann to_s('F') Methode verwenden, um es in Float zu konvertieren.

a = BigDecimal.new("100.55") 
a = a * a 
puts "big decimal #{a.to_s('F')}" 
=> big decimal 10110.3025 

Dank @stefan für to_s('F') Methode anstelle von to_f verwenden hindeutet.

+2

Beachten Sie, dass 'Float # to_s' möglicherweise eine Zeichenfolgendarstellung in E-Notation, z. '0.00001.to_s' gibt' "1.0e-05" 'zurück. Wenn Sie eine Dezimaldarstellung wünschen, sollten Sie stattdessen 'a.to_s ('F')' verwenden. – Stefan

+0

Ich habe meine Antwort aktualisiert. Vielen Dank! –