Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi 12 - System.JSON.FloatToJson - verschlimmbessert - Workaround?

  Alt 17. Jan 2024, 10:04
Wenn das einfach angehängt wird, dann ist es natürlich ein Bug.

Jetzt müssen wir nur noch hoffen, dass sie deinen Kommentar unter dem geschlossenen Ticket noch sehen. Sonst wirst'e wohl ein Neues erstellen müssen.


Wobei ich aber nicht erkennen kann, dass JSON für Float Number zwingend einen . enthalten muß. (aber selbst wenn, dann gehört der Punkt vor das E)
Per se ist der Punkt optional, laut Definition.

Im Grunde kennt Delphi's JSON auch NAN, Infinity und -Infinity, aber .... hmmmmmmmmm.


PS: NINF

Zitat:
Delphi-Quellcode:
procedure TJsonTextWriter.WriteValue(Value: Single);
var
  Str: string;
begin
  inherited WriteValue(Value);

  if Value.IsPositiveInfinity then
    Str := JsonPositiveInfinity
  else if Value.IsNegativeInfinity then
    Str := JsonNegativeInfinity
  else if Value.IsNan then
    Str := JsonNaN
  else
    Str := FloatToStr(Value, FFormatSettings);

  if (FloatFormatHandling = TJsonFloatFormatHandling.Symbol) or not (Value.IsInfinity or Value.IsNan) then
    // nothing
  else
    if FloatFormatHandling = TJsonFloatFormatHandling.DefaultValue then
      Str := '0.0'
    else
      Str := QuoteChar + Str + QuoteChar;
  FWriter.Write(Str);
end;
Tipp für dich: TJsonFloatFormatHandling.Symbol



Aber ich sehe hier aber nirgendwo, dass sie blind ein '.0' anhängen.
Hast du ein Codebeispiel?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (17. Jan 2024 um 10:07 Uhr)
  Mit Zitat antworten Zitat