Séparateur de décimal non standardisé Core & plugins

Salut,

Suite à une discussion avec @JAG et @naboleo je viens vous exposer ce qui nous semble un axe d’amélioration dans l’internalisation de Jeedom et aussi dans une standardisation entre le core et les divers plugins !

Il apparait en effet que le séparateur décimal est tantôt un point tantôt une virgule… parfois dans le même produit les deux !

Or il semble que la virgule est plus pour nous européen et le point pour les anglosaxons.
L’idéal serait peut être de se baser sur le paramètre régional du navigateur afin que chacun s’y retrouve

Séparateur décimal

Un séparateur décimal est un symbole utilisé pour partager la partie décimale de la partie entière d’un nombre décimal. Ce symbole dépend des conventions régionales du système de numération ; communément, il est représenté par un point dans les systèmes anglo-saxons et par une virgule dans les autres systèmes.

Merci

@Bender
Bon ben je serai moins con ce soir (j’ai encore de la marge hein), j’ pensais que la virgule c’était moins répandu !

Bon après le . partout à l’avantage de demander moins de boulot coté DEV.
Et puis je me dis aussi que l’utilisateur lamba, qui va renseigner/voir 1,2 risque de devoir utiliser/écrire #value#==1.2 dans les scénarios/logs etc … C’est pas une gymnastique habituelle pour le non informaticien

Là il faut l’avis de @Loic et de @kiboost

Hello,

J’ai regardé rapidement à priori c’est juste une histoire de type :

<input type="number" min="0" max="1" step="0.1" class="configKey form-control ui-spinner-input" data-l1key="css::border-radius" aria-valuemin="0" aria-valuemax="1" aria-valuenow="0.1" autocomplete="off" role="spinbutton">

ou

<input type="text" class="configKey form-control" data-l1key="historyCalculTendanceThresholddMin">

ça veut probablement dire que l’impact technique est « « quasi nul » », que c’est le navigateur qui se charge de faire la conversion d’un séparateur à l’autre. ça ne doti pas permettre par contre de prendre en compte les restrictions de saisies

Il y a un autre truc bizarre dont il faut pê tenir compte dans la classe scenarioExpression… :woozy_face:

	public static function round($_value, $_decimal = 0) {
		$_value = self::setTags($_value);
		try {
			$result = evaluate($_value);
			if (is_string($result)) {
				$result = $_value;
			}
		} catch (Exception $e) {
			$result = $_value;
		}
		return round(floatval(str_replace(',', '.', $result)), $_decimal);
	}