Skocz do zawartości
  • 0

Spacja co trzy zera w liczbie


Pytanie

Witam, chciałbym aby ktoś przedstawił mi sposób na to jak rozdzielić wpisaną liczbę tak, aby co trzy cyfry występowała spacja.
Przykładowo:
- Mam komendę /wpisz (liczba)
- Wpisuję: /wpisz 1000000 
- Komenda /wypisz
- Wypisuje nam 1 000 000 (lub 1.000.000) zamiast 1000000

Edytowane przez Sledziu
Odnośnik do komentarza
https://skript.pl/temat/46336-spacja-co-trzy-zera-w-liczbie/
Udostępnij na innych stronach

8 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
46 minut temu, Sledziu napisał:

Witam, chciałbym aby ktoś przedstawił mi sposób na to jak rozdzielić wpisaną liczbę tak, aby co trzy cyfry występowała spacja.
Przykładowo:
- Mam komendę /wpisz (liczba)
- Wpisuję: /wpisz 1000000 
- Komenda /wypisz
- Wypisuje nam 1 000 000 (lub 1.000.000) zamiast 1000000

Proszę.

function spacedNumber(n: number) :: string:
	set {_num::*} to ("%{_n}%") split at "."
	set {_l::*} to ("%{_num::1}%") split at ""
	set {_t} to ""
	set {_c} to 0
	set {_i} to (size of {_l::*} - 1)
	while {_i} >= 1:
		if {_c} < 3:
			set {_t} to "%{_l::%{_i}%}%%{_t}%"
			add 1 to {_c}
		else:
			set {_t} to " %{_t}%"
			set {_c} to 0
			add 1 to {_i}
		remove 1 from {_i}	
	return "%{_t}%.%{_num::2}%"
	
command /wpisz [<number=100>]:
	trigger:
		set {spacedNumber} to arg 1
		send "&aUstawiono liczbę na &6%arg 1%&a." to sender
		
command /wypisz:
	trigger:
		send "&aTwoja liczba to &6%spacedNumber({spacedNumber})%&a." to sender

 

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/46336-spacja-co-trzy-zera-w-liczbie/#findComment-291653
Udostępnij na innych stronach

  • 0
40 minut temu, Kormic napisał:

Proszę.


function spacedNumber(n: number) :: string:
	set {_num::*} to ("%{_n}%") split at "."
	set {_l::*} to ("%{_num::1}%") split at ""
	set {_t} to ""
	set {_c} to 0
	set {_i} to (size of {_l::*} - 1)
	while {_i} >= 1:
		if {_c} < 3:
			set {_t} to "%{_l::%{_i}%}%%{_t}%"
			add 1 to {_c}
		else:
			set {_t} to " %{_t}%"
			set {_c} to 0
			add 1 to {_i}
		remove 1 from {_i}	
	return "%{_t}%.%{_num::2}%"
	
command /wpisz [<number=100>]:
	trigger:
		set {spacedNumber} to arg 1
		send "&aUstawiono liczbę na &6%arg 1%&a." to sender
		
command /wypisz:
	trigger:
		send "&aTwoja liczba to &6%spacedNumber({spacedNumber})%&a." to sender

 

Okej funkcja fajnie działa. Chciałbym jeszcze tylko wiedzieć czy można zrobić jakoś, żeby działał mi ten kod:

		loop 27 times:
				set {_zmienna::*} to lore of {targ.itemy.%{name.%player%}%::%loop-number%}
				if {_zmienna::*} contains "&4&lCena:&6 %spacedNumber({targ.koszty.%{name.%player%}%::%loop-number%})%":
					set player's current inventory's slot loop-number -1 to {targ.itemy.%{name.%player%}%::%loop-number%} with lore {_zmienna::*}
				else:
					add "&4&lCena:&6 %spacedNumber({targ.koszty.%{name.%player%}%::%loop-number%})%" to {_zmienna::*}
					set player's current inventory's slot loop-number -1 to {targ.itemy.%{name.%player%}%::%loop-number%} with lore {_zmienna::*}

Gdy używam Twojej funkcji w tym kodzie to w GUI zamiast Cena: (liczba) pojawia mi się Cena: <none>

Odnośnik do komentarza
https://skript.pl/temat/46336-spacja-co-trzy-zera-w-liczbie/#findComment-291661
Udostępnij na innych stronach

  • 0
2 minuty temu, Sledziu napisał:

Gdy używam Twojej funkcji w tym kodzie to w GUI zamiast Cena: (liczba) pojawia mi się Cena: <none>

Jeżeli skrypt działa poprawnie bez funkcji, a z nią już źle, zmień w funkcji w 1. linijce typ argumentu 'number' na 'integer'.

Odnośnik do komentarza
https://skript.pl/temat/46336-spacja-co-trzy-zera-w-liczbie/#findComment-291663
Udostępnij na innych stronach

  • 0
loop 27 times:
				set {_zmienna::*} to lore of {targ.itemy.%{name.%player%}%::%loop-number%}
				set {p} to {targ.koszty.%{name.%player%}%::%loop-number%}
				broadcast "%{p}%"
				set {o} to spacedNumber({p})
				broadcast "%{o}%"
				if {_zmienna::*} contains "&4&lCena:&6 %spacedNumber({targ.koszty.%{name.%player%}%::%loop-number%})%":
					set player's current inventory's slot loop-number -1 to {targ.itemy.%{name.%player%}%::%loop-number%} with lore {_zmienna::*}
				else:
					add "&4&lCena:&6 %spacedNumber({targ.koszty.%{name.%player%}%::%loop-number%})%" to {_zmienna::*}
					set player's current inventory's slot loop-number -1 to {targ.itemy.%{name.%player%}%::%loop-number%} with lore {_zmienna::*}

Zrobiłem takie coś i wysyła na czacie normalnie zmienną {p} jako liczbę, a zmienną {o} wysyła jako <none>

Odnośnik do komentarza
https://skript.pl/temat/46336-spacja-co-trzy-zera-w-liczbie/#findComment-291669
Udostępnij na innych stronach

  • 0
5 minut temu, Sledziu napisał:

Zrobiłem takie coś i wysyła na czacie normalnie zmienną {p} jako liczbę, a zmienną {o} wysyła jako <none>

A zrobiłeś to o czym napisałem czy nie?

Odnośnik do komentarza
https://skript.pl/temat/46336-spacja-co-trzy-zera-w-liczbie/#findComment-291674
Udostępnij na innych stronach

  • 0

 

function spacedNumber(n: integer) :: string:
	set {_num::*} to ("%{_n}%") split at "."
	set {_l::*} to ("%{_num::1}%") split at ""
	set {_t} to ""
	set {_c} to 0
	set {_i} to (size of {_l::*} - 1)
	while {_i} >= 1:
		if {_c} < 3:
			set {_t} to "%{_l::%{_i}%}%%{_t}%"
			add 1 to {_c}
		else:
			set {_t} to " %{_t}%"
			set {_c} to 0
			add 1 to {_i}
		remove 1 from {_i}	
	return "%{_t}%"

 

Odnośnik do komentarza
https://skript.pl/temat/46336-spacja-co-trzy-zera-w-liczbie/#findComment-291675
Udostępnij na innych stronach

  • 0

Dobra znalazłem na necie jakieś rozwiązanie. 

function numFormat(integer: text) :: text:
      return regex replace "(?<=\d)(?=(\d\d\d)+(?!\d))" with " " in {_integer}

i wtedy: set {o} to numFormat("%{p}%")
Myślę, że Twoja funkcja również mogłaby działać gdyby integer zamienic na text

Dzięki za pomoc!

Edytowane przez Sledziu
Odnośnik do komentarza
https://skript.pl/temat/46336-spacja-co-trzy-zera-w-liczbie/#findComment-291680
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...