| 

.NET C# Java Javascript Exception

i18n für Fließkommazahl deaktivieren?

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


i18n für Fließkommazahl deaktivieren?

slyfox1972 - 02.04.2010 11:01
Hallo!

Ich programmiere eine Karte mit GoogleMap-View, wo man einen Marker verschieben kann, um so die Location korrigieren zu können:

<script type="text/javascript">
<!--
function initMap(map) {
  var center = new GLatLng(48.7258782842109, 10.3484344482422);
  map.setCenter(center, 16);
  map.addControl(new GLargeMapControl());
  map.addControl(new GMapTypeControl());
  var marker = new GMarker(center, {draggable: true});

  GEvent.addListener(marker, "dragstart", function() {
	  map.closeInfoWindow();
  });

  GEvent.addListener(marker, "dragend", function() {
	  var p = marker.getPoint();
	  document.getElementById('longitude').value=p.x;
	  document.getElementById('latitude').value=p.y;
	  map.setCenter(p);
  });

  map.addOverlay(marker);
}
//--></script>

Wenn man den Marker verschiebt, werden die neuen Koordinaten mit ins <input ...> übernommen.

<tr class="prop">
	<td valign="top" class="name">
		<label for="longitude"><g:message code="address.longitude.label" default="Longitude" /></label>
	</td>
	<td valign="top" class="value ${hasErrors(bean: addressInstance, field: 'longitude', 'errors')}">
		<g:textField name="longitude" value="${fieldValue(bean: addressInstance, field: 'longitude')}" />
	</td>
</tr>

<tr class="prop">
	<td valign="top" class="name">
		<label for="latitude"><g:message code="address.latitude.label" default="Latitude" /></label>
	</td>
	<td valign="top" class="value ${hasErrors(bean: addressInstance, field: 'latitude', 'errors')}">
		<g:textField name="latitude" value="${fieldValue(bean: addressInstance, field: 'latitude')}" />
	</td>
</tr>

Das Problem bei der Sache ist die Darstellung der Zahl:
Sie wird dank i18n mit Komma statt Punkt und auf 3 Nachkommastellen gerundet dargestellt.
Besser wäre die normale Darstellung und ungerundet. Wie lässt sich das einstellen?

Viele Grüße

Egon Schmid


Re: i18n für Fließkommazahl deaktivieren?

slyfox1972 - 07.04.2010 17:21
Ich werde es anders lösen, und zwar indem ich den JavaScript-Code auch i18n-fähig mache, und dies dasselbe numberFormat verwendet.

import java.text.NumberFormat;

def decimalSymbol = NumberFormat.instance.format(1.5) - '1' - '5'

Wenn decimalSymbol != '.' ist, dann muss JavaScript das Symbol ersetzen...

Ich kann nicht garantieren, ob es funktioniert. Wenn der Server deutsch ist, aber der Browser englisch, sollte ein '.' zurückgeliefert werden...

Ein anderes Problem ist: Ich wollte 8 Nachkommastellen anzeigen. Dies sollte doch funktionieren, indem man bei den constraints scale:8 mit angibt.
latitude(min:(double)-180.0, max:(double)180.0, scale:8)
Es werden aber trotzdem nur 3 Nachkommastellen angezeigt. Bei scale:1 klappt's, nur eine wird angezeigt, aber mehr als 3 nicht...

Gruß

Egon


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "i18n für Fließkommazahl deaktivieren?" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.